import {
  type BattleSkillConfig,
  type BattleSkillConfigEffect,
  type BattleSkillAttributeKey,
  type BattleSkillType,
} from '../../data/battle-skill';

export class BattleSkill {
  id: string;
  name: string;
  description: string;
  type: BattleSkillType;
  target: string;
  baseValue: number;
  multiplier: number;
  baseAttribute: BattleSkillAttributeKey;
  cost: number;
  cooldown: number;
  effects: BattleSkillConfigEffect[];

  constructor(config: BattleSkillConfig) {
    this.id = config.id;
    this.name = config.name;
    this.description = config.description || '';
    this.type = config.type;
    this.target = config.target;
    this.baseValue = config.baseValue;
    this.multiplier = config.multiplier || 1;
    this.baseAttribute = config.baseAttribute;
    this.cost = config.cost || 0;
    this.cooldown = config.cooldown || 0;
    this.effects = config.effects || [];
  }
}
